<?php
/**
 * 行为型模式，典型的控制反转，抽象类定义好模板，子类负责写模板算法。但最终调用的都是抽象类中定义好的方法。抽象类中定义好了算法的执行顺序
 * User: 16
 * Date: 2018/9/18
 * Time: 10:57
 */
error_reporting(-1);
ini_set('display_errors', 1);

spl_autoload_register("autoload");

function autoload($class)
{
    require dirname($_SERVER['SCRIPT_FILENAME']) . '//..//' . str_replace('\\', '/', $class) . '.php';
}

use template\SmsCompanyOne;
use template\SmsCompanyTwo;
try {
    // 用厂商one发短信
    $one = new SmsCompanyOne([
        'app_id' => 'akjlooolllnn',
    ]);
    $one->send('13666666666');
    // 用厂商two发短息
    $one = new SmsCompanyTwo([
        'pwd' => 'adadeooonn',
    ]);
    $one->send('13666666666');
} catch (\Exception $e) {
    echo 'error:' . $e->getMessage();
}